import { customRef } from 'vue'

// vue3的 customRef 自定ref
// 作用：防抖 给v-model用 每隔一段时间收集值
export function useDebouncedRef(value: any, delay = 200) {
  let timeout: any
  return customRef((track, trigger) => {
    return {
      get() {
        track() // 标记依赖
        return value
      },
      set(newValue) {

        clearTimeout(timeout)
        timeout = setTimeout(() => {
          value = newValue
          trigger() // 通知更新
        }, delay)
      }
    }
  })
}